const qqFaceMap = {
  '[微笑]': '0',
  '[撇嘴]': '1',
  '[色]': '2',
  '[发呆]': '3',
  '[得意]': '4',
  '[流泪]': '5',
  '[害羞]': '6',
  '[闭嘴]': '7',
  '[睡]': '8',
  '[大哭]': '9',
  '[尴尬]': '10',
  '[发怒]': '11',
  '[调皮]': '12',
  '[呲牙]': '13',
  '[惊讶]': '14',
  '[难过]': '15',
  '[酷]': '16',
  '[冷汗]': '17',
  '[囧]': '17',
  '[抓狂]': '18',
  '[吐]': '19',
  '[偷笑]': '20',
  '[可爱]': '20',
  '[愉快]': '21',
  '[白眼]': '22',
  '[傲慢]': '23',
  '[饥饿]': '24',
  '[困]': '25',
  '[惊恐]': '26',
  '[流汗]': '27',
  '[憨笑]': '28',
  '[悠闲]': '29',
  '[大兵]': '29',
  '[奋斗]': '30',
  '[咒骂]': '31',
  '[疑问]': '32',
  '[嘘]': '33',
  '[晕]': '34',
  '[疯了]': '35',
  '[折磨]': '35',
  '[衰]': '36',
  '[骷髅]': '37',
  '[敲打]': '38',
  '[再见]': '39',
  '[擦汗]': '40',
  '[抠鼻]': '41',
  '[鼓掌]': '42',
  '[糗大了]': '43',
  '[坏笑]': '44',
  '[左哼哼]': '45',
  '[右哼哼]': '46',
  '[哈欠]': '47',
  '[鄙视]': '48',
  '[委屈]': '49',
  '[快哭了]': '50',
  '[阴险]': '51',
  '[亲亲]': '52',
  '[吓]': '53',
  '[可怜]': '54',
  '[菜刀]': '55',
  '[西瓜]': '56',
  '[啤酒]': '57',
  '[篮球]': '58',
  '[乒乓]': '59',
  '[咖啡]': '60',
  '[饭]': '61',
  '[猪头]': '62',
  '[玫瑰]': '63',
  '[凋谢]': '64',
  '[嘴唇]': '65',
  '[示爱]': '65',
  '[爱心]': '66',
  '[心碎]': '67',
  '[蛋糕]': '68',
  '[闪电]': '69',
  '[炸弹]': '70',
  '[刀]': '71',
  '[足球]': '72',
  '[瓢虫]': '73',
  '[便便]': '74',
  '[月亮]': '75',
  '[太阳]': '76',
  '[礼物]': '77',
  '[拥抱]': '78',
  '[强]': '79',
  '[弱]': '80',
  '[握手]': '81',
  '[胜利]': '82',
  '[抱拳]': '83',
  '[勾引]': '84',
  '[拳头]': '85',
  '[差劲]': '86',
  '[爱你]': '87',
  '[NO]': '88',
  '[OK]': '89',
  '[爱情]': '90',
  '[飞吻]': '91',
  '[跳跳]': '92',
  '[发抖]': '93',
  '[怄火]': '94',
  '[转圈]': '95',
  '[磕头]': '96',
  '[回头]': '97',
  '[跳绳]': '98',
  '[投降]': '99',
  '[激动]': '100',
  '[乱舞]': '101',
  '[献吻]': '102',
  '[左太极]': '103',
  '[右太极]': '104'
}

const qqFaceMap2 = {
  '[嘿哈]': '8',
  '[捂脸]': '9',
  '[奸笑]': '10',
  '[机智]': '11',
  '[皱眉]': '12',
  '[耶]': '13',
  '[鸡]': '20',
  '[红包]': '19'
}

const emojiMap = {
  '\\ue415': '0',
  '%uD83D%uDE04': '0', // 笑脸
  '\\ue40C': '1',
  '%uD83D%uDE37': '1', // 生病
  '\\ue412': '2',
  '%uD83D%uDE02': '2', // 破涕为笑
  '\\ue409': '3',
  '%uD83D%uDE1D': '3', // 吐舌
  '\\ue40D': '4',
  '%uD83D%uDE33': '4', // 脸红
  '\\ue107': '5',
  '%uD83D%uDE31': '5', // 恐惧
  '\\ue403': '6',
  '%uD83D%uDE14': '6', // 失望
  '\\ue40E': '7',
  '%uD83D%uDE12': '7', // 无语
  '\\ue11B': '14',
  '%uD83D%uDC7B': '14', // 鬼魂
  '\\ue41D': '15', // 合十
  '\\ue14C': '16',
  '%uD83D%uDCAA': '16', // 强壮
  '\\ue312': '17',
  '%uD83C%uDF89': '17', // 庆祝
  '\\ue112': '18',
  '%uD83C%uDF81': '18', // 礼物
  '%uD83D%uDE0A': '21', // 开心
  '%uD83D%uDE03': '22', // 大笑
  '%u263A': '23', // 热情
  '%uD83D%uDE09': '24', // 眨眼
  '%uD83D%uDE0D': '25', // 色
  '%uD83D%uDE18': '26', // 接吻
  '%uD83D%uDE1A': '27', // 亲吻
  '%uD83D%uDE01': '28', // 露齿笑
  '%uD83D%uDE0C': '29', // 满意
  '%uD83D%uDE1C': '30', // 戏弄
  '%uD83D%uDE0F': '31', // 得意
  '%uD83D%uDE13': '32', // 汗
  '%uD83D%uDE1E': '33', // 低落
  '%uD83D%uDE16': '34', // 呸
  '%uD83D%uDE25': '35', // 焦虑
  '%uD83D%uDE30': '36', // 担心
  '%uD83D%uDE28': '37', // 震惊
  '%uD83D%uDE2B': '38', // 悔恨
  '%uD83D%uDE23': '38', // 悔恨
  '%uD83D%uDE22': '39', // 眼泪
  '%uD83D%uDE2D': '40', // 哭
  '%uD83D%uDE32': '41', // 晕
  '%uD83D%uDE35': '41', // 晕
  '%uD83D%uDE20': '42', // 心烦
  '%uD83D%uDE21': '43', // 生气
  '%uD83D%uDE2A': '44', // 睡觉
  '%uD83D%uDC7F': '45', // 恶魔
  '%uD83D%uDC7D': '46', // 外星人
  '%u2764': '47', // 心
  '%uD83D%uDC94': '48', // 心碎
  '%uD83D%uDC98': '49', // 丘比特
  '%u2728': '50', // 闪烁
  '%uD83C%uDF1F': '51', // 星星
  '\\ue021': '52', // 叹号
  '%u2755': '52', // 叹号
  '%u2754': '53', // 问号
  '%uD83D%uDCA4': '54', // 睡着
  '%uD83D%uDCA6': '55', // 水滴
  '%uD83C%uDFB5': '56', // 音乐
  '%uD83D%uDD25': '57', // 火
  '%uD83D%uDCA9': '58', // 便便
  '%uD83D%uDC4D': '59', // 强
  '%uD83D%uDC4E': '60', // 弱
  '%uD83D%uDC4A': '61', // 拳头
  '%u270C': '62', // 胜利
  '%uD83D%uDC46': '63', // 上
  '%uD83D%uDC47': '64', // 下
  '%uD83D%uDC49': '65', // 右
  '%uD83D%uDC48': '66', // 左
  '%u261D': '67', // 第一
  '%uD83D%uDC8F': '68', // 吻
  '%uD83D%uDC91': '69', // 热恋
  '%uD83D%uDC66': '70', // 男孩
  '%uD83D%uDC67': '71', // 女孩
  '%uD83D%uDC69': '72', // 女士
  '%uD83D%uDC68': '73', // 男士
  '%uD83D%uDC7C': '74', // 天使
  '%uD83D%uDC80': '75', // 骷髅
  '%uD83D%uDC8B': '76', // 红唇
  '%u2600': '77', // 太阳
  '%u2614': '78', // 下雨
  '%u2601': '79', // 多云
  '%u26C4': '80', // 雪人
  '%uD83C%uDF19': '81', // 月亮
  '%u26A1': '82', // 闪电
  '%uD83C%uDF0A': '83', // 海浪
  '%uD83D%uDC31': '84', // 猫
  '%uD83D%uDC36': '85', // 小狗
  '%uD83D%uDC2D': '86', // 老鼠
  '%uD83D%uDC39': '87', // 仓鼠
  '%uD83D%uDC30': '88', // 兔子
  '%uD83D%uDC3A': '89', // 狗
  '%uD83D%uDC38': '90', // 青蛙
  '%uD83D%uDC2F': '91', // 老虎
  '%uD83D%uDC28': '92', // 考拉
  '%uD83D%uDC3B': '93', // 熊
  '%uD83D%uDC37': '94', // 猪
  '%uD83D%uDC2E': '95', // 牛
  '%uD83D%uDC17': '96', // 野猪
  '%uD83D%uDC35': '97', // 猴子
  '%uD83D%uDC34': '98', // 马
  '%uD83D%uDC0D': '99', // 蛇
  '%uD83D%uDC26': '100', // 鸽子
  '%uD83D%uDC14': '101', // 鸡
  '%uD83D%uDC27': '102', // 企鹅
  '%uD83D%uDC1B': '103', // 毛虫
  '%uD83D%uDC19': '104', // 章鱼
  '%uD83D%uDC20': '105', // 鱼
  '%uD83D%uDC33': '106', // 鲸鱼
  '%uD83D%uDC2C': '107', // 海豚
  '%uD83C%uDF39': '108', // 玫瑰
  '%uD83C%uDF3A': '109', // 花
  '%uD83C%uDF34': '110', // 棕榈树
  '%uD83C%uDF35': '111', // 仙人掌
  '%uD83D%uDC9D': '112', // 礼盒
  '%uD83C%uDF83': '113', // 南瓜灯
  '%uD83C%uDF85': '114', // 圣诞老人
  '%uD83C%uDF84': '115', // 圣诞树
  '%uD83D%uDD14': '116', // 铃
  '%uD83C%uDF88': '117', // 气球
  '%uD83D%uDCBF': '118', // CD
  '%uD83D%uDCF7': '119', // 相机
  '%uD83C%uDFA5': '120', // 录像机
  '%uD83D%uDCBB': '121', // 电脑
  '%uD83D%uDCFA': '122', // 电视
  '%u260E': '123', // 电话
  '%uD83D%uDD13': '124', // 解锁
  '%uD83D%uDD12': '125', // 锁
  '%uD83D%uDD11': '126', // 钥匙
  '%uD83D%uDD28': '127', // 成交
  '%uD83D%uDCA1': '128', // 灯泡
  '%uD83D%uDCEB': '129', // 邮箱
  '%uD83D%uDEC0': '130', // 浴缸
  '%uD83D%uDCB0': '131', // 钱
  '%uD83D%uDCA3': '132', // 炸弹
  '%uD83D%uDD2B': '133', // 手枪
  '%uD83D%uDC8A': '134', // 药丸
  '%uD83C%uDFC8': '135', // 橄榄球
  '%uD83C%uDFC0': '136', // 篮球
  '%u26BD': '137', // 足球
  '%u26BE': '138', // 棒球
  '%u26F3': '139', // 高尔夫
  '%uD83C%uDFC6': '140', // 奖杯
  '%uD83D%uDC7E': '141', // 入侵者
  '%uD83C%uDFA4': '142', // 唱歌
  '%uD83C%uDFB8': '143', // 吉他
  '%uD83D%uDC59': '144', // 比基尼
  '%uD83D%uDC51': '145', // 皇冠
  '%uD83C%uDF02': '146', // 雨伞
  '%uD83D%uDC5C': '147', // 公文包
  '%uD83D%uDC84': '148', // 口红
  '%uD83D%uDC8D': '149', // 戒子
  '%uD83D%uDC8E': '150', // 钻石
  '%u2615': '151', // 咖啡
  '%uD83C%uDF7A': '152', // 啤酒
  '%uD83C%uDF7B': '153', // 干杯
  '%uD83C%uDF78': '154', // 鸡尾酒
  '%uD83C%uDF54': '155', // 汉堡
  '%uD83C%uDF5F': '156', // 薯条
  '%uD83C%uDF5D': '157', // 意面
  '%uD83C%uDF63': '158', // 寿司
  '%uD83C%uDF5C': '159', // 面条
  '%uD83C%uDF73': '160', // 煎蛋
  '%uD83C%uDF66': '161', // 冰激凌
  '%uD83C%uDF82': '162', // 蛋糕
  '%uD83C%uDF4E': '163', // 苹果
  '%u2708': '164', // 飞机
  '%uD83D%uDE80': '165', // 火箭
  '%uD83D%uDEB2': '166', // 自行车
  '%uD83D%uDE84': '167', // 高铁
  '%u26A0': '168', // 警告
  '%uD83C%uDFC1': '169', // 旗
  '%uD83D%uDEB9': '170', // 男人
  '%uD83D%uDEBA': '171', // 女人
  '%u2B55': '172', // O
  '%u274C': '173', // X
  '%A9': '174', // 版权
  '%AE': '175', // 注册商标
  '%u2122': '176' // 商标
}
const regPC = /%uD83D%uDE32|%uD83D%uDE22|%uD83D%uDE16|%u2122|%AE|%A9|%u274C|%u2B55|%uD83D%uDEBA|%uD83D%uDEB9|%uD83C%uDFC1|%u26A0|%uD83D%uDE84|%uD83D%uDEB2|%uD83D%uDE80|%u2708|%uD83C%uDF4E|%uD83C%uDF82|%uD83C%uDF66|%uD83C%uDF73|%uD83C%uDF5C|%uD83C%uDF63|%uD83C%uDF5D|%uD83C%uDF5F|%uD83C%uDF54|%uD83C%uDF78|%uD83C%uDF7B|%uD83C%uDF7A|%u2615|%uD83D%uDC8E|%uD83D%uDC8D|%uD83D%uDC84|%uD83D%uDC5C|%uD83C%uDF02|%uD83D%uDC51|%uD83D%uDC59|%uD83C%uDFB8|%uD83C%uDFA4|%uD83D%uDC7E|%uD83C%uDFC6|%u26F3|%u26BE|%u26BD|%uD83C%uDFC0|%uD83C%uDFC8|%uD83D%uDC8A|%uD83D%uDD2B|%uD83D%uDCA3|%uD83D%uDCB0|%uD83D%uDEC0|%uD83D%uDCEB|%uD83D%uDCA1|%uD83D%uDD28|%uD83D%uDD11|%uD83D%uDD12|%uD83D%uDD13|%u260E|%uD83D%uDCFA|%uD83D%uDCBB|%uD83C%uDFA5|%uD83D%uDCF7|%uD83D%uDCBF|%uD83C%uDF88|%uD83C%uDF89|%uD83D%uDD14|%uD83C%uDF81|%uD83C%uDF84|%uD83C%uDF85|%uD83D%uDC7B|%uD83C%uDF83|%uD83D%uDC9D|%uD83C%uDF35|%uD83C%uDF34|%uD83C%uDF3A|%uD83C%uDF39|%uD83D%uDC2C|%uD83D%uDC33|%uD83D%uDC20|%uD83D%uDC19|%uD83D%uDC1B|%uD83D%uDC27|%uD83D%uDC14|%uD83D%uDC26|%uD83D%uDC0D|%uD83D%uDC34|%uD83D%uDC35|%uD83D%uDC17|%uD83D%uDC2E|%uD83D%uDC37|%uD83D%uDC3B|%uD83D%uDC28|%uD83D%uDC2F|%uD83D%uDC38|%uD83D%uDC3A|%uD83D%uDC30|%uD83D%uDC39|%uD83D%uDC2D|%uD83D%uDC36|%uD83D%uDC31|%uD83C%uDF0A|%u26A1|%uD83C%uDF19|%u26C4|%u2601|%u2614|%u2600|%uD83D%uDC8B|%uD83D%uDC80|%uD83D%uDC7C|%uD83D%uDC68|%uD83D%uDC69|%uD83D%uDC67|%uD83D%uDC66|%uD83D%uDC91|%uD83D%uDC8F|%uD83D%uDCAA|%u261D|%uD83D%uDC48|%uD83D%uDC47|%uD83D%uDC49|%uD83D%uDC46|%u270C|%uD83D%uDC4A|%uD83D%uDC4E|%uD83D%uDC4D|%uD83D%uDCA9|%uD83D%uDD25|%uD83C%uDFB5|%uD83D%uDCA6|%uD83D%uDCA4|%u2754|%u2755|%uD83C%uDF1F|%u2728|%uD83D%uDC98|%u2764|%uD83D%uDC94|%uD83D%uDC7D|%uD83D%uDC7F|%uD83D%uDE37|%uD83D%uDE2A|%uD83D%uDE21|%uD83D%uDE20|%uD83D%uDE31|%uD83D%uDE35|%uD83D%uDE02|%uD83D%uDE2D|%uD83D%uDE23|%uD83D%uDE28|%uD83D%uDE30|%uD83D%uDE25|%uD83D%uDE2B|%uD83D%uDE14|%uD83D%uDE13|%uD83D%uDE0F|%uD83D%uDE12|%uD83D%uDE1E|%uD83D%uDE1D|%uD83D%uDE1C|%uD83D%uDE0C|%uD83D%uDE01|%uD83D%uDE04|%uD83D%uDE0A|%uD83D%uDE03|%u263A|%uD83D%uDE09|%uD83D%uDE0D|%uD83D%uDE18|%uD83D%uDE1A|%uD83D%uDE33/gi

const emojisMap = {
  '0%u20E3': '1', // 1
  '1%u20E3': '2', // 2
  '2%u20E3': '3', // 3
  '3%u20E3': '4', // 4
  '4%u20E3': '5', // 5
  '5%u20E3': '6', // 6
  '6%u20E3': '7', // 7
  '7%u20E3': '8', // 8
  '8%u20E3': '9', // 9
  '\\ue303': '96', // 花
  '\\ue110': '102', // 四叶草
  '%uD83C%uDF40': '102', // 四叶草
  '9%u20E3': '10' // 10
}

const regEmoji = /%uD83C%uDF40|[0-9]%u20E3|\\ue110|\\ue303/gi

/**
 * 解析qq表情及emoji解析
 */
function qqFaceImgMap(val) {
  // let reg5 = /\[\u9080\u8bf7\u4f60\u52a0\u5165\u7fa4\u804a\]/

  // 解析qq表情
  const reg = /\[[\u4e00-\u9fa5]{1,3}\]|\[\w{1,3}\]/gi
  const results = val ? val.match(reg) : val
  if (results) {
    for (const res of results) {
      if (qqFaceMap[res]) {
        const ii = 'qq-face-map' + ' qq-face-map-' + qqFaceMap[res]
        // val = val.replace(res, '</span><div class="' + ii + '"></div><span>')
        val = val.replace(res, '<div class="' + ii + '"></div>')
      } else if (qqFaceMap2[res]) {
        const ii2 = 'emoji-map' + ' emoji-' + qqFaceMap2[res]
        // val = val.replace(res, '</span><div class="' + ii2 + '"></div><span>')
        val = val.replace(res, '<div class="' + ii2 + '"></div>')
      }
      // let r = res.replace('[', '').replace(']', '')
      // val = val.replace(
      //   res,
      //   '<img style="width:16px;height:16px;display:inline-block;" src="' +
      //     this.phizList[r] +
      //     '" alt="" >'
      // )
    }
  }

  // 解析emoji
  const reg2 = /\\uE[\w]{3}/gi
  const reg3 = /%ue|%uE/g
  const reg4 = /%0A/g
  val = escape(val).replace(reg3, '\\ue')
  val = val.replace(reg4, '<br/>')
  // console.log('解码后的text')
  // console.log(val)

  // 手机发送的emoji
  const results2 = val.match(reg2)
  if (results2) {
    // console.log('有emoji')
    // console.log(results2)
    for (const emoji of results2) {
      if (emojiMap[emoji]) {
        const ei = 'emoji-map' + ' emoji-' + emojiMap[emoji]
        val = val.replace(emoji, '<div class="' + ei + '"></div>')
      }
    }
  }

  const results3 = val.match(regPC)
  // 有emoji
  if (results3) {
    for (const emoji of results3) {
      if (emojiMap[emoji]) {
        const ei = 'emoji-map' + ' emoji-' + emojiMap[emoji]
        val = val.replace(emoji, '<div class="' + ei + '"></div>')
      }
    }
  }

  // 其他emoji
  const results4 = val.match(regEmoji)
  if (results4) {
    for (const emoji of results4) {
      if (emojisMap[emoji]) {
        const ei = 'emojis-map' + ' emojis-' + emojisMap[emoji]
        val = val.replace(emoji, '<div class="' + ei + '"></div>')
      }
    }
  }

  val = unescape(val)
  // return '<span>' + val + '</span>'
  return val
}

export default {
  qqFaceImgMap
}
